import { DataTypes } from "sequelize";
import { sequelize } from "../../BaseDao";

// sequelize方案一模型
// 模型定义
class Userinfo {
  static createModel() {
    const model = sequelize.define(
      "userinfos",
      {
        userid: {
          type: DataTypes.INTEGER, // 表示属性的数据类型
          field: "userid", // 属性对应的列名，若不定义field则表中的列名（userid）就是属性名
          primaryKey: true, // 表示主建
          autoIncrement: true, // 表示主建自增
        },
        username: {
          type: DataTypes.STRING(30), // 表示属性的数据类型
          field: "username",
          allowNull: false, //表示当前列是否允许为空，false 表示改列不能为空
          // unique:true, // 表示改列的值必须唯一
        },
        psw: {
          type: DataTypes.STRING(20), // 表示属性的数据类型
          field: "psw",
          allowNull: false, //表示当前列是否允许为空，false 表示改列不能为空
          // unique:true, // 表示改列的值必须唯一
        },
        address: {
          type: DataTypes.STRING(50), // 表示属性的数据类型
          field: "address",
          allowNull: false, //表示当前列是否允许为空，false 表示改列不能为空
          // unique:true, // 表示改列的值必须唯一
        },
        valid: {
          type: DataTypes.TINYINT, // 表示属性的数据类型
          field: "valid",
          allowNull: false, //表示当前列是否允许为空，false 表示改列不能为空
          // unique:true, // 表示改列的值必须唯一
        },
      }
      //  {
      //    freezeTableName: true, // true 表示使用给定的表名, false 表示模型后加s作为表名
      //    timestamps: false, //true 表示给模型加上时间戳属性（createAt`updateAt),false表示不带时间戳属性
      //  }
    );
    // 同步到数据库  force的true，表若存在先删除后建，为false表层不存在才创建
    //  model.sync({ force: true });
    return model;
  }
}

export const model = Userinfo.createModel();
